home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 4 / Atari Forever 4.zip / Atari Forever 4.iso / SERIE_DM / DM_155 / DM_155.MSA / SYNC / ADECC.S
Text File  |  1987-04-22  |  5KB  |  281 lines

  1. *    opt    d+
  2.  
  3. p_tbase    PEA    rt(PC)
  4.     MOVE.W    #$26,-(A7)
  5.     TRAP    #14
  6.     ADDQ.L    #6,A7
  7.     BRA    run
  8.  
  9. rt    LEA    L1B894(PC),A0
  10.     LEA    $200.W,A1
  11.     MOVE.L    $84.W,$BC.W
  12.     MOVE.L    A1,$84.W
  13.     MOVE.W    #$EE,D0
  14. L1B88C    MOVE.W    (A0)+,(A1)+
  15.     DBF    D0,L1B88C
  16.     RTS
  17. L1B894    MOVEM.L    D0-D5/A0-A3/A6,-(A7)
  18.     LEA    $32(A7),A6
  19.     BTST    #$D,$2C(A7)
  20.     BNE.S    L1B8A6
  21.     MOVE.L    USP,A6
  22. L1B8A6    CMPI.W    #$3D,(A6)
  23.     BNE.S    L1B8C0
  24.     MOVEA.L    2(A6),A0
  25.     CMPI.B    #$53,5(A0)
  26.     BNE.S    L1B8E6
  27.     MOVE.B    -$1C(A0),6(A0)
  28.     BRA.S    L1B8E6
  29. L1B8C0    CMPI.W    #$3F,(A6)
  30.     BNE.S    L1B8E6
  31.     LEA    $C(A6),A0
  32.     MOVEQ    #5,D0
  33. L1B8CC    MOVE.W    -(A0),-(A7)
  34.     DBF    D0,L1B8CC
  35.     TRAP    #15
  36.     LEA    $C(A7),A7
  37.     TST.L    D0
  38.     BMI.S    L1B8DE
  39.     BSR.S    L1B8F0
  40. L1B8DE    MOVE.L    D0,(A7)
  41.     MOVEM.L    (A7)+,D0-D5/A0-A3/A6
  42.     RTE
  43. L1B8E6    MOVEM.L    (A7)+,D0-D5/A0-A3/A6
  44.     MOVE.L    $BC.W,-(A7)
  45.     RTS
  46. L1B8F0    MOVE.W    $FFFF8240.W,-(A7)
  47.     MOVEA.L    8(A0),A1
  48.     MOVEA.L    A1,A2
  49.     CMPI.B    #$4C,(A2)+
  50.     BNE    L1BA6C
  51.     CMPI.B    #$53,(A2)+
  52.     BNE    L1BA6C
  53.     CMPI.B    #$44,(A2)+
  54.     BNE    L1BA6C
  55.     CMPI.B    #$21,(A2)+
  56.     BNE    L1BA6C
  57.     LEA    $60000,A3
  58.     MOVEA.L    A3,A0
  59.     MOVE.L    D0,D1
  60. L1B924    MOVE.B    (A2)+,(A3)+
  61.     SUBQ.L    #1,D1
  62.     BNE.S    L1B924
  63.     MOVE.L    (A0)+,D0
  64.     ADDA.L    D0,A1
  65.     ADDA.L    (A0),A0
  66.     SUBQ.L    #4,A0
  67.     TST.W    -(A0)
  68.     BPL.S    L1B938
  69.     SUBQ.L    #1,A0
  70. L1B938    MOVE.B    -(A0),D5
  71. L1B93A    LSL.B    #1,D5
  72.     BNE.S    L1B942
  73.     MOVE.B    -(A0),D5
  74.     ROXL.B    #1,D5
  75. L1B942    BCC.S    L1B99A
  76.     CLR.W    D1
  77.     LSL.B    #1,D5
  78.     BNE.S    L1B94E
  79.     MOVE.B    -(A0),D5
  80.     ROXL.B    #1,D5
  81. L1B94E    BCC.S    L1B990
  82.     LEA    L1B988(PC),A3
  83.     MOVEQ    #3,D3
  84. L1B956    CLR.W    D1
  85.     MOVE.B    0(A3,D3.W),D2
  86.     EXT.W    D2
  87.     MOVEQ    #-1,D4
  88.     LSL.W    D2,D4
  89.     NOT.W    D4
  90.     SUBQ.W    #1,D2
  91. L1B966    LSL.B    #1,D5
  92.     BNE.S    L1B96E
  93.     MOVE.B    -(A0),D5
  94.     ROXL.B    #1,D5
  95. L1B96E    ROXL.W    #1,D1
  96.     DBF    D2,L1B966
  97.     TST.W    D3
  98.     BEQ.S    L1B97E
  99.     CMP.W    D1,D4
  100.     DBNE    D3,L1B956
  101. L1B97E    MOVE.B    4(A3,D3.W),D2
  102.     EXT.W    D2
  103.     ADD.W    D2,D1
  104.     BRA.S    L1B990
  105. L1B988    dc.b    $a,$3,$2,$2
  106.     dc.b    $e,$7,$4,$1    
  107. L1B990    MOVE.B    -(A0),-(A1)
  108.     MOVE.W    D5,$FFFF8240.W
  109.     DBF    D1,L1B990
  110. L1B99A    LEA    $60000,A3
  111.     ADDQ.L    #8,A3
  112.     CMPA.L    A3,A0
  113.     BLE    L1BA6C
  114.     LEA    L1B9E4(PC),A3
  115.     MOVEQ    #3,D2
  116. L1B9AE    LSL.B    #1,D5
  117.     BNE.S    L1B9B6
  118.     MOVE.B    -(A0),D5
  119.     ROXL.B    #1,D5
  120. L1B9B6    BCC.S    L1B9BC
  121.     DBF    D2,L1B9AE
  122. L1B9BC    CLR.W    D1
  123.     ADDQ.W    #1,D2
  124.     MOVE.B    0(A3,D2.W),D3
  125.     BEQ.S    L1B9D8
  126.     EXT.W    D3
  127.     SUBQ.W    #1,D3
  128. L1B9CA    LSL.B    #1,D5
  129.     BNE.S    L1B9D2
  130.     MOVE.B    -(A0),D5
  131.     ROXL.B    #1,D5
  132. L1B9D2    ROXL.W    #1,D1
  133.     DBF    D3,L1B9CA
  134. L1B9D8    MOVE.B    5(A3,D2.W),D3
  135.     EXT.W    D3
  136.     ADD.W    D3,D1
  137.     BRA    L1B9EE
  138. L1B9E4    dc.b    $a,$2,$1,$0,$0
  139.     dc.b    $a,$6,$4,$3,$2
  140. L1B9EE    CMPI.W    #2,D1
  141.     BEQ.S    L1BA34
  142.     LEA    L1BA28(PC),A3
  143.     MOVEQ    #1,D3
  144. L1B9FA    LSL.B    #1,D5
  145.     BNE.S    L1BA02
  146.     MOVE.B    -(A0),D5
  147.     ROXL.B    #1,D5
  148. L1BA02    BCC.S    L1BA08
  149.     DBF    D3,L1B9FA
  150. L1BA08    ADDQ.W    #1,D3
  151.     CLR.W    D2
  152.     MOVE.B    0(A3,D3.W),D4
  153.     EXT.W    D4
  154. L1BA12    LSL.B    #1,D5
  155.     BNE.S    L1BA1A
  156.     MOVE.B    -(A0),D5
  157.     ROXL.B    #1,D5
  158. L1BA1A    ROXL.W    #1,D2
  159.     DBF    D4,L1BA12
  160.     LSL.W    #1,D3
  161.     ADD.W    4(A3,D3.W),D2
  162.     BRA.S    L1BA58
  163. L1BA28    dc.b    $b,$4,$7,$0,$1
  164.     dc.b    $20,$0,$0,$0
  165.     dc.b    $20,$0,$0
  166. L1BA34    CLR.W    D2
  167.     MOVEQ    #5,D3
  168.     CLR.W    D4
  169.     LSL.B    #1,D5
  170.     BNE.S    L1BA42
  171.     MOVE.B    -(A0),D5
  172.     ROXL.B    #1,D5
  173. L1BA42    BCC.S    L1BA48
  174.     MOVEQ    #8,D3
  175.     MOVEQ    #$40,D4
  176. L1BA48    LSL.B    #1,D5
  177.     BNE.S    L1BA50
  178.     MOVE.B    -(A0),D5
  179.     ROXL.B    #1,D5
  180. L1BA50    ROXL.W    #1,D2
  181.     DBF    D3,L1BA48
  182.     ADD.W    D4,D2
  183. L1BA58    LEA    0(A1,D2.W),A2
  184.     EXT.L    D1
  185.     ADDA.L    D1,A2
  186.     SUBQ.W    #1,D1
  187. L1BA62    MOVE.B    -(A2),-(A1)
  188.     DBF    D1,L1BA62
  189.     BRA    L1B93A
  190. L1BA6C    MOVE.W    (A7)+,$FFFF8240.W
  191.     RTS
  192.     
  193. run    lea    prg_len(pc),a0
  194.     move.l    #endbuf-buffer,(a0)    
  195.     bsr    relog        
  196.     bsr    calc_bp        
  197.     bsr    exec        
  198. relog    lea    buffer(pc),a0
  199.     move.l    2(a0),d0
  200.     add.l    6(a0),d0
  201.     lea    memo(pc),a1
  202.     move.l    d0,(a1)
  203.     tst    $1a(a0)
  204.     bne.s    .stop
  205.     move.l    a0,a1
  206.     add.l    #$1c,a1
  207.     move.l    a1,a2
  208.     add.l    2(a0),a2
  209.     add.l    6(a0),a2
  210.     add.l    14(a0),a2
  211.     clr.l    d1
  212.     lea    p_tbase(pc),a0
  213.     move.l    a0,d2
  214.     move.l    (a2)+,d0
  215.     beq.s    .stop
  216. .1    add.l    d2,0(a1,d0.l)
  217. .2    move.b    (a2)+,d1
  218.     beq.s    .stop
  219.     add.l    d1,d0
  220.     cmp.b    #1,d1
  221.     bne.s    .1
  222.     addi.l    #$fd,d0
  223.     bra.s    .2
  224. .stop    rts
  225.  
  226. calc_bp move.l    8(a7),a0
  227.     lea    p_tbase(pc),a1
  228.     move.l    a1,d0
  229.     lea    buffer(pc),a1
  230.     move.l    2(a1),12(a0)
  231.     add.l    12(a0),d0
  232.     move.l    d0,16(a0)
  233.     move.l    6(a1),20(a0)
  234.     add.l    20(a0),d0
  235.     move.l    d0,24(a0)
  236.     move.l    10(a1),28(a0)
  237.     rts
  238.  
  239. exec    addq.l    #4,a7
  240.     lea    p_tbase-$100(pc),a0
  241.     move.l    a0,4(a7)
  242.     move.l    24(a0),a2
  243.     move.l    a2,a3
  244.     add.l    28(a0),a3
  245.     lea    buffer(pc),a0
  246.     add.l    prg_len(pc),a0
  247.     cmp.l    a3,a0
  248.     ble.s    .1
  249.     move.l    a0,a3
  250. .1    move    #9,d0
  251.     lea    transf(pc),a0
  252.     lea    p_tbase(pc),a1
  253.     move.l    a1,-(sp)
  254. .2    move    -(a0),-(sp)
  255.     dbra    d0,.2
  256.     lea    buffer(pc),a0
  257.     add.l    #$1c,a0
  258.     move.l    memo(pc),d0
  259.     jmp    (a7)
  260. .3    move.l    (a0)+,(a1)+
  261.     subq.l    #4,d0
  262.     bpl.s    .3
  263. .4    clr.l    (a2)+
  264.     cmp.l    a2,a3
  265.     bgt.s    .4
  266.     add.l    #$14,sp
  267.     rts
  268. transf
  269. prg_len    dc.l    0
  270. memo    dc.l    0
  271. buffer
  272.         *INCBIN    A:folder.PRG
  273. endbuf
  274.     even
  275.  
  276.     end
  277.  
  278.  
  279.  
  280.     
  281.